<html>
<body>
Reports <code>public</code> methods in classes
which are not exposed in an interface.
<p>Exposing all <code>public</code> methods via an interface is important for
  maintaining loose coupling, and may be necessary for certain component-based programming styles.</p>
<p>Example:</p>
<pre><code>
interface Person {
  String getName();
}

class PersonImpl implements Person {
  private String name;

  // ok: method is exposed in interface
  @Override
  public String getName() {
    return name;
  }

  // warning: method is public
  // but not exposed in interface
  public void setName() {
    this.name = name;
  }
}
</code></pre>
<!-- tooltip end -->
<p>
  Use the <b>Ignore if annotated by</b> list to specify special annotations. Methods annotated with one of
these annotations will be ignored by this inspection.
<p>
  Use the <b>Ignore if the containing class does not implement a non-library interface</b> option to ignore methods from classes which do not
implement any interface from the project.
<p>

</body>
</html>